include GL/glfw

// GL stuff
GLfloat: extern cover from Float
GLdouble: extern cover from Double
GLint: extern cover from Int
GLenum: extern cover from UInt

GL_COLOR_BUFFER_BIT: extern GLenum
GL_LINES: extern GLenum
GL_LINE_LOOP: extern GLenum
GL_POLYGON: extern GLenum
GL_PROJECTION: extern GLenum
GL_MODELVIEW: extern GLenum

GL_ONE: extern GLenum
GL_SRC_ALPHA: extern GLenum
GL_ONE_MINUS_SRC_ALPHA: extern GLenum
GL_BLEND: extern GLenum

GL_TEXTURE_2D: extern GLenum

glLineWidth: extern func(GLfloat) -> Void
glEnable: extern func(GLenum) -> Void
glDisable: extern func(GLenum) -> Void
glBlendFunc: extern func (src:GLenum, dst: GLenum) -> Void
glClear: extern func (mode:GLenum) -> Void
glBegin: extern func (mode:GLenum) -> Void
glMatrixMode: extern func(mode: GLenum) -> Void
glLoadIdentity: extern func -> Void
glVertex2f: extern func (x:GLfloat, y:GLfloat) -> Void
glEnd: extern func -> Void
glOrtho: extern func( Float, Float, Float, Float, Float, Float)
glColor3ub: extern func( Int, Int, Int ) -> Void
glColor4ub: extern func( Int, Int, Int, Int ) -> Void


// glfw
GLFW_WINDOW: extern Int
GLFW_OPENED: extern Int
GLFW_MOUSE_BUTTON_LEFT: extern Int
GLFW_MOUSE_BUTTON_RIGHT: extern Int
GLFW_MOUSE_BUTTON_MIDDLE: extern Int

// Window
glfwGetWindowSize: extern func(Int*, Int* ) -> Void


glfwInit: extern func -> Int
glfwTerminate: extern func -> Int
glfwOpenWindow: extern func (width: Int,height: Int,redbits: Int,greenbits: Int,bluebits: Int,alphabits: Int,depthbits: Int,stencilbits: Int,mode: Int) -> Int


glfwSetWindowTitle: extern func( String ) -> Void
glfwSleep: extern func( Double )
glfwSwapBuffers: extern func
glfwGetTime: extern func -> Double

glfwGetWindowParam: extern func( Int ) -> Int

// Input
glfwGetMousePos: extern func( Int*, Int* )
glfwGetMouseButton: extern func( Int) -> Int
glfwGetKey: extern func( Int ) -> Int
glfwGetMouseWheel: extern func -> Int
















